文档

基于EBS部署高性能的MySQL服务

更新时间:
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

MySQL是当今流行的开源关系型数据库管理系统之一,被广泛应用于各种互联网、企业和个人项目中。然而,随着数据量的增加以及应用复杂性的提升,数据库的性能可能会成为系统整体性能的瓶颈。单纯的优化SQL语句或者通过分库分表等方式并不能在真正意义上帮您优化MySQL的系统性能,如果您对优化MySQL性能有需求或兴趣,建议您跟随本实验场景通过16K原子写及部分参数优化来提升MySQL性能。

背景信息

MySQL参数

MySQL拥有数百个参数,这些参数覆盖了内存管理、缓存大小、连接处理、日志记录、复制配置、查询优化等方面,具体参数的数量取决于MySQL的版本和安装的存储引擎。正确配置参数可以有效帮助您提升MySQL的性能,但参数配置不正确也会影响MySQL的性能,严重情况下甚至会影响数据的准确性。

下面将从MySQL参数的角度为您提供优化MySQL性能的建议,您可以通过实验室为您提供的环境去配置这些参数,也可以自行购买实例后按照本文教程配置这些参数。

MySQL参数说明

参数

MySQL 8.0

参数说明

max_connections

151

控制最大并发连接数。设置越大,会占用越多的服务器内存和资源,调整这个参数需要评估您的服务器的硬件资源。

max_allowed_packet

64M

控制MySQL服务端和客户端传输的数据包大小。如果您的需求场景为大批量插入等操作,可以适当调大该值。

innodb_buffer_pool_size

默认值(根据实例规格)

控制InnoDB存储引擎用于缓存数据和索引的内存缓冲区大小。存在于缓冲区的数据可以直接被访问,减少磁盘IO,配置该值需要同时考虑服务器的内存和经常访问的数据集的大小,建议不超过内存的70%。

innodb_buffer_pool_instances

1

控制将 InnoDB 的缓冲池分割为多个实例的数量。该值和innodb_buffer_pool_size相关,当缓冲池大小很大时,使用多个缓冲池实例可以提高并发性能

innodb_read_io_threads

4

控制InnoDB引擎用于处理读取操作的后台线程数量。如果您的数据库有较高的读并发需求,增加这些线程的数量可能会提高性能。

innodb_write_io_threads

4

控制InnoDB引擎用于处理写入操作的后台线程数量。如果您的数据库有较高的写并发需求,增加这些线程的数量可能会提高性能。

innodb_flush_log_at_trx_commit

1

控制InnoDB存储引擎如何处理事务日志的写入和刷新,直接影响数据库的持久性和性能。

  • 0:日志缓冲区每秒刷新到磁盘一次。

  • 1:默认设置,日志缓冲区会在每个事务提交时刷新到磁盘。

  • 2:日志缓冲区会在每个事务提交时写入到日志文件,但不会立即刷新到磁盘上。

innodb_flush_method

fsync

【默认配置无需修改】控制InnoDB存储引擎如何刷新(写回)脏页到磁盘。常见的选项包含

fsync、O_DIRECT、O_DIRECT_NO_FSYNC。

innodb_use_native_aio

ON

【默认配置无需修改】控制InnoDB存储引擎是否使用操作系统提供的异步I/O(AIO)功能。

16K原子写MySQL

在数据库领域,提升数据库性能的方法很多,但其中效果比较显著的就包括16K原子写的MySQL,它的效果在于可以相对显著地提升MySQL服务的读写性能,并且还有降低写放大等优势。而要实现16K原子写的特性,不仅需要数据库软件本身的支持,还需要硬件和文件系统层面的支持。

说明

通常情况下,MySQL数据库是通过MySQL DoubleWrite机制来确保数据一致性和可靠性,该机制可能导致IO负载和延迟的增加,进而降低MySQL的性能,尤其在高负载的数据库中更为明显。本实验利用ESSD云盘具备的16K原子写能力,通过关闭DoubleWrite参数来实现16k原子写能力,既可以确保数据一致性和可靠性,又能减少写入操作的次数和延迟,改善MySQL DoubleWrite机制带来的性能问题,提供更高性能的MySQL数据存储和访问服务。

计费说明

在部署MySQL服务过程中,会根据使用的阿里云资源(ECS实例、ESSD云盘等)的计费方式进行计费。如果您是通过实验室一键部署,创建的实验任务本身不会收费。

说明

实验室一键部署过程中使用到的阿里云资源仅支持按量付费。

部署MySQL服务

手动部署(用于生产环境)

重要

实验室部署的一键搭建能力通常用于快速验证和测试新特性,但不适合直接应用到生产环境中。在生产环境中,建议使用手动部署方式,以确保系统的安全和稳定。

手动部署MySQL服务需先购买ECS实例和ESSD云盘,然后在ECS实例中通过命令部署MySQL服务。

操作步骤

  1. 创建ECS实例。ECS实例需要满足以下条件:

    • 以实例规格ecs.c6.2xlarge为例。

    • 仅支持使用CentOS 7镜像,不支持其他类型的镜像。

    • 挂载ESSD类型的数据盘,以500 GiB的ESSD PL1为例。

    • ECS实例未安装MySQL服务。

    具体操作,请参见自定义购买实例

  2. 远程连接ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  3. 安装MySQL。

    1. 执行以下命令,下载MySQL安装包,以MySQL 8.0为例。

      cd /tmp/
      wget http://mirrors.cloud.aliyuncs.com/mysql/MySQL-8.0/mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar
    2. 执行以下命令,解压缩安装包。

      tar -xf mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar
    3. 执行以下命令,安装MySQL。

      sudo yum install -y mysql-community-{server,client,common,libs,devel}-*
    4. 执行以下命令,停止MySQL进程。

      sudo systemctl stop mysqld
  4. 初始化云盘。

    1. 执行以下命令,获取数据盘盘符。

      sudo fdisk -l

      如下图所示,表示该数据盘未执行过初始化(没有分区),且盘符为vdb

      image.png

    2. 执行以下命令,配置全局环境变量。

      DEV_LABEL=vdb

      其中vdb为数据盘盘符,请您根据实际环境替换。

    3. 执行以下命令,设置MySQL数据保存位置。

      MYSQL_HOME=/home/ecs-user/${DEV_LABEL}
    4. 执行以下命令,防止virtio引起分块。

      sudo sh -c 'echo 256 >/sys/block/vdb/queue/max_sectors_kb'
    5. 执行以下命令,创建MySQL目录。

      if [ ! -d ${MYSQL_HOME} ]; then
       sudo mkdir -p ${MYSQL_HOME}
      fi
    6. (条件必选)执行以下命令,卸载数据盘。

      如果您的数据盘尚未初始化,无需执行该步骤。

      sudo umount /dev/${DEV_LABEL}
    7. 执行以下命令,格式化文件系统,启用bigalloc选项,并设置文件系统的块大小为16 KB。

      echo y | sudo mkfs.ext4 -O bigalloc -C 16k /dev/${DEV_LABEL}
    8. 执行以下命令,挂载数据盘。

      sudo mount /dev/${DEV_LABEL} ${MYSQL_HOME}
    9. 执行以下命令,创建MySQL的日志目录、数据目录等。

      sudo mkdir -p ${MYSQL_HOME}/data/dbs
      sudo mkdir -p ${MYSQL_HOME}/data/mysql
      sudo mkdir -p ${MYSQL_HOME}/log/mysql
      sudo mkdir -p ${MYSQL_HOME}/log/redo
  5. 配置MySQL。

    1. 执行以下命令,创建MySQL配置文件、设置MySQL参数并关闭DoubleWrite。

      sudo tee /etc/my.cnf <<EOF
      [mysqld]
      port = 3306
      back_log = 3000
      datadir = ${MYSQL_HOME}/data/dbs
      log-bin = ${MYSQL_HOME}/log/mysql/mysql-bin.log
      log-error = ${MYSQL_HOME}/log/mysql/master-error.log
      innodb_data_home_dir = ${MYSQL_HOME}/data/mysql/
      innodb_log_group_home_dir = ${MYSQL_HOME}/log/redo/
      innodb_doublewrite_dir = ${MYSQL_HOME}/doublewrite
      character_set_server = utf8
      sync_binlog = 1000
      innodb_flush_log_at_trx_commit = 2
      innodb_doublewrite = 0
      max_connections=151
      max_allowed_packet=64M
      innodb_buffer_pool_size=128M
      innodb_buffer_pool_instances=1
      innodb_read_io_threads=4
      innodb_write_io_threads=4
      innodb_buffer_pool_instances=1
      innodb_flush_log_at_trx_commit=1
      innodb_flush_method=O_DIRECT
      default_authentication_plugin = mysql_native_password
      EOF

      MySQL参数的详细说明,请参见MySQL参数

    2. 执行以下命令,初始化MySQL。

      sudo mysqld --defaults-file=/etc/my.cnf --initialize
  6. 启动MySQL。

    1. 执行以下命令,启动MySQL。

      sudo mysqld --user=root --daemonize
    2. 执行以下命令,检查MySQL是否正常启动。

      ps -aux | grep mysqld

      如下图所示,表示MySQL已正常启动。

      image.png

  7. (可选)配置MySQL开机自启动。

    1. 执行以下命令,进入到目标目录。如果不存在,则通过mkdir新建。

      cd /etc/rc.d/init.d
    2. 执行以下命令,创建自启动脚本。

      sudo tee /etc/rc.d/init.d/ebs_mysql_16k_auto_start.sh <<EOF
      #!/bin/bash
      # chkconfig: 345 20 80
      # description: EBS MySQL 16K Auto Start Script
      start() {
          DEV_LABEL=vdb
          MYSQL_HOME=/home/ecs-user/\${DEV_LABEL}
          echo 256 >/sys/block/vdb/queue/max_sectors_kb
          umount /dev/\${DEV_LABEL}
          mount /dev/\${DEV_LABEL} \${MYSQL_HOME}
          mysqld --user=root --daemonize
      }
      
      stop() {
          killall mysqld
          echo "Stopping mysqld..."
      }
      
      restart() {
          stop
          sleep 2
          start
      }
      
      case "\$1" in
          start)
              start
              ;;
          stop)
              stop
              ;;
          restart)
              restart
              ;;
          *)
              echo "Usage: \$0 {start|stop|restart}"
              exit 1
      esac
      exit 0
      EOF
    3. 执行以下命令,为脚本添加可执行权限。

      sudo chmod +x /etc/rc.d/init.d/ebs_mysql_16k_auto_start.sh
    4. 执行以下命令,添加脚本开启自启动任务。

      sudo chkconfig --add ebs_mysql_16k_auto_start.sh
    5. 执行以下命令,配置脚本开启自启动。

      sudo chkconfig ebs_mysql_16k_auto_start.sh on

通过实验室一键部署(用于快速验证和测试新特性)

您也可以通过块存储EBS的实验室一键式部署MySQL服务,无需手动购买资源和搭建环境。该实验室场景基于资源编排服务的自动编排及部署能力,结合ESSD云盘的16K原子写能力和MySQL的业务场景,为您提供更加简单易上手的MySQL应用实践,您可以快速获得性能更优的自建数据库服务。

  1. 前往实验场景页面。

    1. 登录块存储EBS控制台

      说明

      首次登录EBS控制台时,请根据页面提示创建一个EBS服务关联角色。更多信息,请参见块存储EBS服务关联角色

    2. 在左侧导航栏选择实验室 > 实验场景

    3. 在顶部菜单栏左上角处,选择地域。

    4. 基于EBS部署高性能的MySQL服务实验场景模板中,单击一键创建实验任务

  2. 实验场景向导页面,设置实验场景的基础信息,然后单击下一步

    参数

    说明

    实验场景

    实验室的应用场景,默认为基于EBS部署高性能的MySQL服务

    实验任务名称

    已默认填写,您可以根据需要修改。

    性能需求范围

    按实际需求选择MySQL数据库的性能指标QPS和TPS范围,本实验任务会根据对应的性能范围为您推荐最佳的实例和云盘配置。

    • QPS(Query per Second):每秒查询率。是指系统每秒能够响应的查询次数,单位是次/秒。

    • TPS(Transaction per Second):每秒事务数。是指系统每秒处理的事务数,单位是笔/秒。

    实验项

    选择基于EBS部署高性能的MySQL和对比环境基于EBS部署高性能的MySQL

    • 基于EBS部署高性能的MySQL和对比环境:该实验项会同时为您创建高性能的MySQL和普通的MySQL环境,并且实例和云盘的规格一致,便于您对比性能。

    • 基于EBS部署高性能的MySQL:该实验项会为您创建高性能的MySQL环境。

    描述

    (非必填)设置实验任务的描述信息。

    系统会根据您选择的性能需求范围默认推荐ECS实例、数据盘、弹性公网、MySQL等最佳配置参数,您无需填写,也可以根据需要重新自定义配置。

  3. (可选)在配置参数向导页面,您可以单击编辑修改实验任务的参数。

    参数

    说明

    【高性能】ECS实例

    • 生产可用区:选择实例对应的可用区。

    • 系统镜像:仅支持选择CentOS 7.9。

    • 系统盘:选择您期望的系统盘类型和云盘容量。

    • CPU(Core):选择该可用区下可用的CPU规格。

    • 内存 (GiB):选择该可用区下可用的内存规格。

    • 实例密码:设置ECS实例的初始登录密码。

      重要

      请您牢记设置的实例密码,以便后续远程连接ECS实例。

    • 实例规格:选择实例规格,不同的实例规格在性能和费用上均有不同。更多信息,请参见实例规格族。本实验以ecs.c6.2xlarge为例。

    说明

    如果实验项选择基于EBS部署高性能的MySQL和对比环境,配置完[高性能]ECS实例后,[普通]ECS实例参数默认和[高性能]ECS实例完全一致。

    【高性能】数据盘

    数据盘仅支持ESSD云盘,您可以选择期望的ESSD云盘和对应的容量。本实验以500 GiB的ESSD PL1为例。

    说明

    如果实验项选择基于EBS部署高性能的MySQL和对比环境,配置完[高性能]数据盘后,[普通]数据盘参数默认和[高性能]数据盘完全一致。

    带宽

    • 带宽计费模式:默认按使用流量计费。

    • 带宽峰值:设置允许的带宽峰值。带宽峰值是衡量网络性能和网络连接质量的重要指标之一,它可以影响网络数据传输的速度和稳定性。

    MySQL

    • MySQL版本:您可以选择您期望的MySQL版本,默认为您推荐8.0版本。

    • 数据库根账号:填写数据库的根账号,默认为root。

    • 数据库根账号密码:设置数据库根账号的初始密码。

      重要

      请您牢记设置的数据库密码,以便后续登录MySQL数据库。

    • 数据库端口:填写数据库访问端口,默认是MySQL Server的启动端口3306。

      说明

      访问MySQL数据库时,还需要在ECS实例的安全组中开放3306端口才能正常访问。具体操作,请参见添加安全组规则

    • MySQL其他参数:请参见MySQL参数

  4. (可选)修改对应的配置后,确认总费用后,单击保存

  5. 检查确认配置参数以及费用信息,然后单击确认

    支付完成后,系统会为您准备资源,并帮助您搭建好对应的实验场景,预计需要5分钟,请您耐心等待。

    说明

    实验任务依赖于ROS资源编排能力,一个实验任务对应于一个资源栈,您最多允许创建200个实验任务。

验证与清理

验证方案

验证MySQL服务可用性

  1. 远程连接ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. (条件必选)执行以下命令,查看MySQL的临时密码。

    如果您是通过实验室一键部署,无需执行本操作查看密码,使用创建实验任务时设置的数据库根账号密码登录MySQL即可。

    sudo cat ${MYSQL_HOME}/log/mysql/master-error.log | grep root | grep "temporary password" | awk '{print $13}'

    image.png

  3. 执行以下命令,登录MySQL。

    mysql -uroot -p

    输入上一步获取的密码,即可登录MySQL。

    image.png

  4. 执行以下命令,退出MySQL。

    exit
  5. (条件必选)如果您配置了开机重启,执行以下命令重启ECS后,MySQL服务将自动启动。

    sudo reboot
  6. 执行以下命令,验证MySQL服务是否正常重启。

    ps aux | grep mysqld

测试MySQL性能

如果您需要测试MySQL服务的性能,可以参考如下步骤:

  1. 远程连接ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 执行以下命令,安装SysBench。

    sudo yum install -y sysbench
  3. 参考步骤1~步骤2登录MySQL。

  4. 执行以下命令,创建sbtest数据库。

    create database sbtest;
  5. 执行以下命令,进行性能测试,包括OLTP读写混合场景压测、OLTP只读场景压测和OLTP只写场景压测。

    OLTP读写混合场景

    参考如下命令进行测试,参数说明请参考性能测试指导

    ##准备数据
    sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300  --threads=XXX oltp_read_write prepare
    
    ##运行workload
    sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300   --threads=XXX --percentile=95 --report-interval=1 oltp_read_write run
    
    ##清理数据
    sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300   --threads=XXX --percentile=95  oltp_read_write cleanup

    测试结果示例如下所示:

    • QPS:12555.24

    • TPS:627.76

    • 时延:52.89 ms

    b2385c9705672fbc9f259ca3c63f05a3

    OLTP只读场景

    参考如下命令进行测试,参数说明请参见性能测试指导

    ##准备数据
    sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300  --threads=XXX  oltp_read_only prepare
    
    ##运行workload
    sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300  --threads=XXX --percentile=95 --skip-trx=1 --report-interval=1 oltp_read_only run
    
    ##清理数据
    sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300   --threads=XXX --percentile=95 oltp_read_only cleanup

    测试结果示例如下所示:

    • QPS:15032.03

    • TPS:939.50

    • 时延:19.29 ms

    d88f792df19c7fdd368e38656c4defb4

    OLTP只写场景

    参考如下命令进行测试,参数说明请参见性能测试指导

    ##准备数据
    sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300  --threads=XXX  oltp_write_only prepare
    
    ##运行workload
    sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300   --threads=XXX --percentile=95 --report-interval=1 oltp_write_only run
    
    ##清理数据
    sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300   --threads=XXX --percentile=95  oltp_write_only cleanup

    测试结果示例如下:

    • QPS:4255.01

    • TPS:2038.18

    • 时延:20.74 ms

    image.png

性能结果对比

您可以通过以下步骤验证本文提供的部署方案与普通部署方案对MySQL性能的提升效果。

  • 对比规格

    建议普通部署与本文部署使用完全一致的实例规格、云盘规格、MySQL安装方法和参数配置。普通部署也以实例规格是ecs.c6.2xlarge、数据盘是500 GiB的ESSD PL1、镜像是CentOS 7、MySQL是8.0为例。

  • 部署MySQL步骤

    • 本文部署:参考部署MySQL服务验证方案安装、配置MySQL并安装测试工具。

    • 普通部署:可以在创建实验任务时选择基于EBS部署高性能的MySQL和对比环境实验项,也可以参考如下命令手动部署。

      普通部署MySQL的操作命令

      1. 安装MySQL。

        # 下载安装包
        cd /tmp
        wget -N http://mirrors.cloud.aliyuncs.com/mysql/MySQL-8.0/mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar -O mysql.tar
        # 解压安装包
        tar -xf mysql.tar
        # 安装mysql
        sudo yum install -y mysql-community-{server,client,common,libs,devel}-*
        # 停止mysqld
        sudo systemctl stop mysqld
        sudo systemctl disable mysqld
      2. 配置MySQL。

        # 格式化数据盘
        sudo fdisk -l
        DEV_LABEL=vdb
        MYSQL_HOME=/home/ecs-user/${DEV_LABEL}
        echo y | sudo mkfs.ext4 /dev/${DEV_LABEL}
        
        # 创建mysql数据目录
        sudo mkdir -p ${MYSQL_HOME}
        sudo mount /dev/${DEV_LABEL} ${MYSQL_HOME}
        sudo mkdir -p ${MYSQL_HOME}/data/dbs
        sudo mkdir -p ${MYSQL_HOME}/data/mysql
        sudo mkdir -p ${MYSQL_HOME}/log/mysql
        sudo mkdir -p ${MYSQL_HOME}/log/redo
        
        sudo systemctl stop mysqld
        sudo groupadd mysql
        sudo useradd -g mysql mysql
        sudo chown -R mysql:mysql ${MYSQL_HOME}
        
        # 设置mysql启动参数
        sudo tee /etc/my.cnf <<EOF
        [mysqld]
        port = 3306
        datadir = ${MYSQL_HOME}/data/dbs
        log-bin = ${MYSQL_HOME}/log/mysql/mysql-bin.log
        log-error = ${MYSQL_HOME}/log/mysql/master-error.log
        innodb_data_home_dir = ${MYSQL_HOME}/data/mysql/
        innodb_log_group_home_dir = ${MYSQL_HOME}/log/redo/
        innodb_doublewrite_dir = ${MYSQL_HOME}/doublewrite
        character_set_server = utf8
        default_authentication_plugin = mysql_native_password
        EOF
        
        # 初始化mysql
        sudo mysqld --defaults-file=/etc/my.cnf --initialize
        sudo mysqld --user=root --daemonize
        
        # 查看mysql临时密码
        sudo cat ${MYSQL_HOME}/log/mysql/master-error.log | grep root | grep "temporary password" | awk '{print $13}'
        
        # 登录mysql,准备测试环境
        mysql -uroot -p
        # 第一次登录,首先需要修改root密码
        ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';
        
        # 创建sysbench测试用户
        create user sbtest@'%' identified by 'sbtest_123';
        grant all privileges on *.* to sbtest@'%';
        create database sbtest;
        
        #在使用sysbench对MySQL进行压力测试时,创建的预处理语句数量可能会超过max_prepared_stmt_count 参数配置的最大值,在测试前请登录mysql执行以下语句
        set global max_prepared_stmt_count=104857600;
        #退出数据库
        exit
      3. 安装SysBench并进行性能测试,以OLTP只写场景、多线程--threads=32为例。

        #安装SysBench
        sudo yum install sysbench -y
        ##准备数据
        sysbench --db-driver=mysql --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sbtest --mysql-password=sbtest_123 --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=60  --threads=32  oltp_write_only prepare
        
        ##运行workload
        sysbench --db-driver=mysql --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sbtest --mysql-password=sbtest_123 --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=60   --threads=32 --percentile=95 --report-interval=1 oltp_write_only run
        
        ##清理数据
        sysbench --db-driver=mysql --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sbtest --mysql-password=sbtest_123 --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=60   --threads=32 --percentile=95  oltp_write_only cleanup
  • 测试结果对比

    重要

    测试结果受不同实例、云盘以及环境等众多因素的影响,本示例数据仅供参考。

    • 本文部署MySQL性能测试结果

      image

    • 普通部署MySQL性能测试结果

      image

    ​通过本文部署MySQL的QPS为42153,而普通部署MySQL的QPS为27449,性能提升超过50%,在TPS、时延等方面也会有一些性能提升。

清理资源

如果您是通过实验室一键部署,测试完成后建议您及时清理相关资源,避免继续产生费用。

重要

推荐您通过实验室一键删除实验任务的相关资源,不建议通过ECS控制台或者EBS控制台释放实例和云盘,避免误操作导致实验任务资源不可用。

  1. 登录块存储EBS控制台

  2. 在左侧导航栏选择实验室 > 实验任务

  3. 在顶部菜单栏左上角处,选择地域。

  4. 在目标实验任务的操作列,单击删除

    您也可以选中多个实验任务,在列表底部单击批量删除

警告

删除实验任务时默认不会释放实验资源,如果选中是否删除资源,实验任务中的资源,例如ECS实例、数据库实例等均会被释放,请您谨慎操作。

  • 本页导读 (1)
文档反馈